package com.cedar.demo.service;

import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;

import com.cedar.demo.demo.MeData;
import com.cedar.demo.entity.CorbaLoginRes;

import mtnm.tmforum.org.emsMgr.AlarmStaticInfo_T;
import mtnm.tmforum.org.emsSession.EmsSession_I;
import mtnm.tmforum.org.equipment.EquipmentOrHolder_T;
import mtnm.tmforum.org.equipment.ObjectAdditionalInfo_T;
import mtnm.tmforum.org.equipment.PhysicalLocationInfo_T;
import mtnm.tmforum.org.globaldefs.NameAndStringValue_T;
import mtnm.tmforum.org.globaldefs.ProcessingFailureException;
import mtnm.tmforum.org.managedElement.ManagedElement_T;
import mtnm.tmforum.org.multiLayerSubnetwork.MultiLayerSubnetwork_T;
import mtnm.tmforum.org.performance.CollectTaskInfo_T;
import mtnm.tmforum.org.subnetworkConnection.CrossConnect_T;
import mtnm.tmforum.org.subnetworkConnection.SubnetworkConnection_T;
import mtnm.tmforum.org.terminationPoint.TerminationPoint_T;
import mtnm.tmforum.org.topologicalLink.TopologicalLink_T;

public interface HuaweiNceCorbaService {
    //登录选项，获取EmsSession
    CorbaLoginRes login();

    List<MultiLayerSubnetwork_T> getAllTopLevelSubnetworks(EmsSession_I emsSession) throws ProcessingFailureException;

	List<PhysicalLocationInfo_T> getPhysicalLocationInfo(EmsSession_I emsSession) throws ProcessingFailureException;

	List<EquipmentOrHolder_T> getAllEquipment(EmsSession_I emsSession, String stElement) throws ProcessingFailureException;

	List<TopologicalLink_T> getTopologicalLink(EmsSession_I emsSession) throws ProcessingFailureException;

	NameAndStringValue_T[][] getAllEquipmentNames(EmsSession_I emsSession, String stElement) throws ProcessingFailureException;

	List<EquipmentOrHolder_T> getContainedEquipment(EmsSession_I emsSession, String stElement, String EquipmentHolder)
			throws ProcessingFailureException;

	NameAndStringValue_T[][] getEquipmentStaticInfo(EmsSession_I emsSession, String stElement) throws ProcessingFailureException;

	List<ObjectAdditionalInfo_T> getAllEquipmentAdditionalInfo(EmsSession_I emsSession, String stElement) throws ProcessingFailureException;

	List<CrossConnect_T> getAllCrossConnections(EmsSession_I emsSession, String stElement, String rate) throws ProcessingFailureException;

	List<SubnetworkConnection_T> getAllSubnetworkConnections(EmsSession_I emsSession, String subnetName, String rate)
			throws ProcessingFailureException;

	List<CrossConnect_T> getRoute(EmsSession_I emsSession, String topologicalLink) throws ProcessingFailureException;

	SubnetworkConnection_T getSNC(EmsSession_I emsSession) throws ProcessingFailureException;

	List<CrossConnect_T> getOrginalRoute(EmsSession_I emsSession) throws ProcessingFailureException;

	/**
	 * 获取所有网元
	 */
	List<ManagedElement_T> getAllManagedElements(EmsSession_I emsSession);

	public List<String> getAllSupportedManagers(EmsSession_I emsSession) throws ProcessingFailureException;

	List<MeData> neAllRelation() throws ProcessingFailureException;

	List<TerminationPoint_T> getAllSupportedPTPs(EmsSession_I emsSession, String stElement, String equipmentHolder,
			String equipment) throws ProcessingFailureException;

	void getAllHistoryAlarmsByFTP(EmsSession_I emsSession) throws ProcessingFailureException;

	List<Map<String, String>> getAllEMSAndMEActiveAlarms(CorbaLoginRes login) throws ProcessingFailureException;

	List<AlarmStaticInfo_T> getAllAlarmStaticInfo(CorbaLoginRes login) throws ProcessingFailureException;

	void createPMCollectionTask(CorbaLoginRes login) throws ProcessingFailureException;

	List<CollectTaskInfo_T> selectPMCollectionTask(CorbaLoginRes login) throws ProcessingFailureException, UnsupportedEncodingException;

	ManagedElement_T getManagedElement(EmsSession_I emsSession, String stElement) throws ProcessingFailureException;

	List<TopologicalLink_T> getAllTopologicalLinks(EmsSession_I emsSession, String subnetwork)
			throws ProcessingFailureException;
    
}
